<template>
  <div class="login">
    <div class="login-container">
      <h2>财务管理管理系统</h2>
      <form @submit.prevent="login">
        <div class="form-group">
          <label for="username">账号:</label>
          <input type="text" id="username" v-model="username" placeholder="请输入账号" required>
        </div>
        <div class="form-group">
          <label for="password">密码:</label>
          <input type="password" id="password" v-model="password" placeholder="请输入密码" required>
        </div>
        <button type="submit">登录</button>
        <p class="switch">没有账号？<router-link to="/register">注册</router-link></p>
      </form>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username: '',  // 用户名字段
      password: ''   // 密码字段
    };
  },
  methods: {
    async login() {
      try {
        const response = await fetch('http://82.156.19.25:5000/login', {
          method: 'POST',
          headers: { 
            'Content-Type': 'application/json'
          },
          body: JSON.stringify({
            username: this.username, // 从输入框获取的用户名
            password: this.password  // 从输入框获取的密码
          })
        });

        if (!response.ok) {
          throw new Error('网络响应不是 OK');
        }

        const data = await response.json(); // 解析响应为 JSON
        console.log('Response data:', data); // 添加调试信息
        if (data.success) { // 检查登录是否成功
          alert('登录成功');
          // 存储 user_id 和 username 到 localStorage
          localStorage.setItem('userId', data.user_id);   // 存储用户 ID
          localStorage.setItem('username', this.username); // 存储用户名
          console.log('登录成功，user_id:', data.user_id);
          this.$emit('update-auth', true); // 通知父组件更新认证状态
          this.$router.push('/sales-forecast'); // 登录成功后跳转到某个页面
        } else {
          alert('登录失败: ' + data.message); // 显示失败消息
        }
      } catch (error) {
        console.error('Error:', error);
        alert('登录请求失败，请检查网络连接或稍后重试'); // 显示网络错误消息
      }
    }
  }
};
</script>



<style scoped>
html, body {
  height: 100%;
  margin: 0;
}

.login {
  display: flex;
  justify-content: center; /* 水平居中 */
  align-items: center;     /* 垂直居中 */
  height: 100vh;           /* 高度设置为视口高度 */
}

.login-container {
  max-width: 400px;
  width: 100%;
  padding: 20px;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

h2 {
  margin-bottom: 20px;
  color: #333;
}

.form-group {
    margin-bottom: 20px;
    position: relative;
    display: flex;
}

label {
    margin-top: 10px;
     width: 50px;
     display: block;
     margin-bottom: 5px;
    color: #555;
    font-weight: bold;
     margin-right: 5px;
}

input[type="text"],
input[type="password"] {
  flex: 1;
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
  box-sizing: border-box;
}

button {
  width: 100%;
  padding: 10px;
  border: none;
  border-radius: 4px;
  background-color: #4CAF50;
  color: #fff;
  font-size: 16px;
  cursor: pointer;
}

button:hover {
  background-color: #45a049;
}

.switch {
  margin-top: 10px;
  color: #666;
}

.switch a {
  color: #4CAF50;
  text-decoration: none;
}

.switch a:hover {
  text-decoration: underline;
}

</style>
